Skip to main content

Snowflake原理

什么是雪花算法Snowflake?

  • twitter用scala语言编写的高效生成唯一ID的算法

  • 优点

    • 生成的ID不重复

    • 算法性能高

    • 基于时间戳,基本保证有序递增

bit与byte

bit(位)

电脑中存储的最小单位,可以存储二进制中的0或1

byte(字节)

一个byte由8个bit组成

java数据类型存储字节大小

  • int:4 个字节

  • short:2 个字节

  • long:8 个字节

  • byte:1 个字节

  • float:4 个字节

  • double:8 个字节

  • char:2 个字节

  • 16位平台 int 2个字节16位

  • 32位平台 int 4个字节32位

  • 64位平台 int 4个字节32位

雪花算法

生成的数字,long类,所以就是8个byte,64bit

  • 表示的值 -9223372036854775808(-2的63次方) ~ 9223372036854775807(2的63次方-1)

  • 生成的唯一值用于数据库主键,不能是负数,所以值为0~9223372036854775807(2的63次方-1)